package com.ytjj.qmyx.mall.mapper;

import com.ytjj.qmyx.mall.model.*;
import com.ytjj.qmyx.mall.model.response.ProductActivityResponse;
import com.ytjj.qmyx.mall.model.response.ProductResponse;
import com.ytjj.qmyx.mall.model.response.ProductShortResponse;
import com.ytjj.qmyx.mall.model.response.ProductTinyResponse;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Description TODO
 * @ClassName ProductActivityDao
 *
 *
 * @Version 1.0
 **/
public interface ProductActivityDao {
    /**
     * 获取
     *
     * @param extra
     * @return
     */
    ActivityColumn getProductActivityColumn(String extra);


    List<ProductActivity> getProductActivityListByColumnId(Integer columnId);

    List<ProductActivity> getFreeProductList();

    /**
     * 普通商品店铺推荐
     * @param bankerId
     * @return
     */
    List<ProductActivityResponse> getRecommend(Integer bankerId);

    Integer countProductNumByBankerId(Integer bankerId);

    Integer countFollowNumByBankerId(Integer bankerId);

    ProductTinyResponse getHotProductById(@Param("hotProductId") Integer hotProductId, @Param("platformData") String platformData,@Param("dataType") String dataType);

    List<ProductTinyResponse> getHotProductRecommend(@Param("hotProductId") Integer hotProductId,@Param("platformData") String platformData,@Param("dataType") String dataType);

    List<HotProductCategory> getCategoryList(@Param("hotProductId")Integer hotProductId);

    List<ProductTinyResponse> getHotCategoryProduct(@Param("categoryId") Integer categoryId,@Param("platformData") String platformData,@Param("dataType") String dataType);

    List<ProductTinyResponse> getCouponListByActivityMax(@Param("couponPrice") BigDecimal couponPrice,@Param("platformData") String platformData);

    List<HotProductBanner> getHotProductBanner(@Param("hotProductId") Integer hotProductId,@Param("platformData") String platformData);

    List<String> getUsersFake();

    List<ProductResponse> getReturnCoupon(@Param("platformData") String platformData);

    List<ProductShortResponse> getActivityProducts(
            @Param("productId") Integer productId,
            @Param("activityType") String activityType
            , @Param("platformData") String platformData
            ,@Param("limitNum")  int limitNum);
}
